<<<<<<< HEAD
Attaching package: ‘dplyr’
The following objects are masked from ‘package:stats’:
filter, lag
The following objects are masked from ‘package:base’:
intersect, setdiff, setequal, union
Warning: package ‘ggplot2’ was built under R version 4.3.3Warning: package ‘plotly’ was built under R version 4.3.3
Attaching package: ‘plotly’
The following object is masked from ‘package:ggplot2’:
last_plot
The following object is masked from ‘package:stats’:
filter
The following object is masked from ‘package:graphics’:
layout
Warning: package ‘treemapify’ was built under R version 4.3.3
=======
>>>>>>> c6d893886411386df8f9bc2cb666cee51bc7a06f
axis = list(showline=FALSE,
zeroline=FALSE,
gridcolor='#ffff',
ticklen=1)
<<<<<<< HEAD
matrizD <- datos_multidimensionales %>%
plot_ly()
matrizD <- matrizD %>%
add_trace(
type = 'splom',
dimensions = list(
list(label='Día',values=~Día),
list(label='Tránsito',values=~Tipo.de.circulación),
list(label='Hora',values=~Hora.recodificada),
list(label='Vía',values=~Tipo.de.calzada),
list(label='Clima',values=~Estado.del.tiempo)
)
)
matrizD <- matrizD %>%
layout(
title= 'Accidentes del 2016-2022 evaluando distintos factores',
hovermode='closest',
dragmode= 'select',
plot_bgcolor='rgba(240,240,240, 0.95)',
xaxis=list(domain=NULL, showline=F, zeroline=F, gridcolor='#ffff', ticklen=4),
yaxis=list(domain=NULL, showline=F, zeroline=F, gridcolor='#ffff', ticklen=4),
xaxis2=axis,
xaxis3=axis,
xaxis4=axis,
yaxis2=axis,
yaxis3=axis,
yaxis4=axis
)
matrizD <- matrizD %>%
layout(
xaxis = list(tickvals = NULL, ticktext = NULL),
xaxis2 = list(tickvals = NULL, ticktext = NULL),
xaxis3 = list(tickvals = NULL, ticktext = NULL),
xaxis4 = list(tickvals = NULL, ticktext = NULL),
xaxis5 = list(tickvals = NULL, ticktext = NULL),
yaxis = list(tickvals = NULL, ticktext = NULL),
yaxis2 = list(tickvals = NULL, ticktext = NULL),
yaxis3 = list(tickvals = NULL, ticktext = NULL),
yaxis4 = list(tickvals = NULL, ticktext = NULL),
yaxis5 = list(tickvals = NULL, ticktext = NULL)
)
matrizD
NA
NA
LS0tDQp0aXRsZTogIkFjY2lkZW50ZXMgZGUgdHJhbnNpdG8gZW4gQ1IgZW50cmUgMjAxNi0yMDIyIg0Kb3V0cHV0OiBodG1sX25vdGVib29rDQotLS0NCg0KYGBge3IsIGVjaG8gPSBGQUxTRX0NCmRhdGEgPC0gcmVhZC5jc3YoImFjY2lkZW50ZXNfdHJhbnNpdG9fY29uX3ZpY3RpbWFzXzIwMTZfMjAyMi5jc3YiLCBzZXAgPSAiOyIpDQpgYGANCg0KYGBge3IsIGVjaG8gPSBGQUxTRX0NCmxpYnJhcnkoZHBseXIpDQpsaWJyYXJ5KGdncGxvdDIpDQpsaWJyYXJ5KHBsb3RseSkNCmxpYnJhcnkoY29sb3JzcGFjZSkNCmxpYnJhcnkodHJlZW1hcGlmeSkNCmBgYA0KDQpgYGB7ciwgZWNobz1GQUxTRX0NCiNvYnRlbmVtb3MgbG9zIG1lc2VzLCBkaWFzIHkgbGEgcnV0YSBkb25kZQ0KI21hcyBhY2NpZGVudGVzIGhheQ0KbWVzZXNfZGlhc19SVV9tYXNfYWNjaWRlbnRlcyA8LSBkYXRhICU+JQ0KICBmaWx0ZXIoZ3JlcGwoIl5bQS1MXVxcLi4qXFxzKEVuZXJvfEZlYnJlcm98TWFyem98QWJyaWx8TWF5b3xKdW5pb3xKdWxpb3xBZ29zdG98U2V0aWVtYnJlfE9jdHVicmV8Tm92aWVtYnJlfERpY2llbWJyZSkkIiwgTWVzKSkgJT4lDQogIGZpbHRlcihncmVwbCgiXlsxLTddXFwuKERvbWluZ298THVuZXN8TWFydGVzfE1pw6lyY29sZXN8SnVldmVzfFZpZXJuZXN8U8OhYmFkbykkIiwgRMOtYSkpICU+JQ0KICBncm91cF9ieShNZXMsRMOtYSxSdXRhKSAlPiUNCiAgc3VtbWFyaXNlKE1EdG90YWxfYWNjaWRlbnRlcyA9IG4oKSkgJT4lDQogIGFycmFuZ2UoZGVzYyhNRHRvdGFsX2FjY2lkZW50ZXMpKQ0KDQpyZWdpc3Ryb3NfbWFzX2ZyZWN1ZW50ZXMgPC0gbWVzZXNfZGlhc19SVV9tYXNfYWNjaWRlbnRlcyAlPiUNCiAgZ3JvdXBfYnkoTWVzKSAlPiUNCiAgc2xpY2UoMSkNCiAgDQpudW1lcm9fbWVzIDwtIHNlcSgxLCAxMiwgbGVuZ3RoLm91dCA9IG5yb3cocmVnaXN0cm9zX21hc19mcmVjdWVudGVzKSkNCm51bWVyb19tZXMgPC0gYXMuaW50ZWdlcihudW1lcm9fbWVzKQ0KcmVnaXN0cm9zX21hc19mcmVjdWVudGVzIDwtIGNiaW5kKHJlZ2lzdHJvc19tYXNfZnJlY3VlbnRlcywgTnVtZXJvTWVzID0gbnVtZXJvX21lcykNCg0KIyBDcmVhciB1bmEgY29sdW1uYSBwYXJhIGVsIG7Dum1lcm8gZGUgZMOtYSBzZWfDum4gZWwgZMOtYSBkZSBsYSBzZW1hbmEgZW4gcmVnaXN0cm9zX21hc19mcmVjdWVudGVzDQpyZWdpc3Ryb3NfbWFzX2ZyZWN1ZW50ZXMkQ29sb3JEaWEgPC1pZmVsc2UocmVnaXN0cm9zX21hc19mcmVjdWVudGVzJETDrWEgPT0gIjEuRG9taW5nbyIsICJibHVlIiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWZlbHNlKHJlZ2lzdHJvc19tYXNfZnJlY3VlbnRlcyREw61hID09ICIyLkx1bmVzIiwgInJlZCIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmZWxzZShyZWdpc3Ryb3NfbWFzX2ZyZWN1ZW50ZXMkRMOtYSA9PSAiMy5NYXJ0ZXMiLCAieWVsbG93IiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWZlbHNlKHJlZ2lzdHJvc19tYXNfZnJlY3VlbnRlcyREw61hID09ICI0Lk1pw6lyY29sZXMiLCAiY3lhbiIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmZWxzZShyZWdpc3Ryb3NfbWFzX2ZyZWN1ZW50ZXMkRMOtYSA9PSAiNS5KdWV2ZXMiLCAiZGFya2dyZWVuIiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWZlbHNlKHJlZ2lzdHJvc19tYXNfZnJlY3VlbnRlcyREw61hID09ICI2LlZpZXJuZXMiLCAiYnJvd24iLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZmVsc2UocmVnaXN0cm9zX21hc19mcmVjdWVudGVzJETDrWEgPT0gIjcuU8OhYmFkbyIsICJibGFjayIsIE5BKSkpKSkpKQ0KDQpyZWdpc3Ryb3NfbWFzX2ZyZWN1ZW50ZXMkaWRSdXRhIDwtaWZlbHNlKHJlZ2lzdHJvc19tYXNfZnJlY3VlbnRlcyRSdXRhID09ICJDYW50b25hbCIsIDEpDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICANCnJlZ2lzdHJvc19tYXNfZnJlY3VlbnRlcyRNZXMgPC0gZ3N1YigiW0EtTF1cXC4iLCAiIiwgcmVnaXN0cm9zX21hc19mcmVjdWVudGVzJE1lcykNCg0KcmVnaXN0cm9zX21hc19mcmVjdWVudGVzJETDrWEgPC0gZ3N1YigiWzEtN11cXC4iLCAiIiwgcmVnaXN0cm9zX21hc19mcmVjdWVudGVzJETDrWEpDQoNCmBgYA0KDQpgYGB7ciwgZWNobyA9IEZBTFNFfQ0KZ3JhZmljb19jaGVybm9mZiA8LSBnZ3Bsb3QocmVnaXN0cm9zX21hc19mcmVjdWVudGVzLCBhZXMoeCA9IE51bWVyb01lcywgeSA9IGlkUnV0YSxsYWJlbDEgPSBNZXMsbGFiZWwyID0gUnV0YSxsYWJlbDMgPSBEw61hKSkgKw0KICBnZW9tX3BvaW50KHNpemUgPSA5LGNvbG91ciA9IHJlZ2lzdHJvc19tYXNfZnJlY3VlbnRlcyRDb2xvckRpYSkgKw0KICBsYWJzKHggPSAiTWVzIix5ID0gIlJ1dGEiKSArDQogIGdlb21fdGV4dChhZXMobGFiZWwgPSAi8J+Rge+4jyDwn5GB77iPIiksdmp1c3QgPSAtNSwgc2l6ZSA9IDMpKyAgDQogIGdlb21fdGV4dChhZXMobGFiZWwgPSAi8J+RhCIpLCB2anVzdCA9IDUsIHNpemUgPSAyKSArDQogIHRoZW1lX2J3KCkNCg0KIyBDb252ZXJ0aW1vcyBlbCBncsOhZmljbyBnZ3Bsb3QyIGVuIHVubyBpbnRlcmFjdGl2byBjb24gcGxvdGx5DQpncmFmaWNvX2ludGVyYWN0aXZvIDwtIGdncGxvdGx5KGdyYWZpY29fY2hlcm5vZmYsdG9vbHRpcCA9IGMoImxhYmVsMSIsICJsYWJlbDIiLCAibGFiZWwzIikpDQoNCiMgTW9zdHJhbW9zIGVsIGdyw6FmaWNvIGludGVyYWN0aXZvDQpncmFmaWNvX2ludGVyYWN0aXZvDQoNCiMgMTIgY2FyYXMgcG9yIGxvcyBtZXNlcywgY29sb3IgY2FyYSBkaWFzIC4uLiB5IHRhbWFuaG8gY2FyYSBydXRhDQpgYGANCg0KYGBge3IsZWNobz1GQUxTRX0NCnJ1cmFsVXJiYW5vX21hc19hY2NpZGVudGVzPC1kYXRhICU+JQ0KICBncm91cF9ieShSdXJhbC5vLnVyYmFubyklPiUNCiAgc3VtbWFyaXNlKFJVdG90YWxfYWNjaWRlbnRlcyA9IG4oKSkgJT4lDQogIGFycmFuZ2UoZGVzYyhSVXRvdGFsX2FjY2lkZW50ZXMpKQ0KIyBkZXNkZSAyMDE2IGhhc3RhcyAyMDIyDQpgYGANCg0KYGBge3IsZWNobz1GQUxTRX0NCmxhYmVscyA9IHJ1cmFsVXJiYW5vX21hc19hY2NpZGVudGVzJFJ1cmFsLm8udXJiYW5vDQp2YWx1ZXMgPSBydXJhbFVyYmFub19tYXNfYWNjaWRlbnRlcyRSVXRvdGFsX2FjY2lkZW50ZXMNCg0KZmlnIDwtIHBsb3RfbHkodHlwZT0ncGllJywgbGFiZWxzPWxhYmVscywgdmFsdWVzPXZhbHVlcywgDQogICAgICAgICAgICAgICB0ZXh0aW5mbz0nbGFiZWwrcGVyY2VudCcsDQogICAgICAgICAgICAgICBpbnNpZGV0ZXh0b3JpZW50YXRpb249J3JhZGlhbCcpDQpmaWcgPC0gZmlnICU+JSBsYXlvdXQodGl0bGUgPSAnQWNjaWRlbnRlcyBwb3IgcnV0YSBlbnRyZSAyMDE2LTIwMjInKQ0KDQpmaWcNCmBgYA0KDQpgYGB7cixlY2hvPUZBTFNFfQ0KI3kgPW1pZGVwbGFuIHg9IGNhbnRvbg0KI3RlbmVyIGNhbnRvbiBjb24gbWFzIHkgbWVub3MgYWNjaWRlbnRlcw0KcmVnaW9uX2NhbnRvbl9tYXNfYWNjaWRlbnRlczwtZGF0YSU+JQ0KICBncm91cF9ieShSZWdpw7NuLk1pZGVwbGFuLCBDYW50w7NuKSU+JQ0KICBzdW1tYXJpc2UoUkN0b3RhbF9hY2NpZGVudGVzID0gbigpLC5ncm91cHMgPSAiZHJvcCIpDQoNCnJlZ2lvbl9jYW50b25fbWFzX2FjY2lkZW50ZXM8LXJlZ2lvbl9jYW50b25fbWFzX2FjY2lkZW50ZXMlPiUNCiAgZ3JvdXBfYnkoUmVnacOzbi5NaWRlcGxhbiwgQ2FudMOzbiklPiUNCiAgc3VtbWFyaXNlKG1heF92YWxvciA9IG1heChSQ3RvdGFsX2FjY2lkZW50ZXMpLC5ncm91cHMgPSAiZHJvcCIpJT4lDQogIGFycmFuZ2UobWF4X3ZhbG9yKQ0KDQojIE7Dum1lcm8gZGUgY29sb3JlcyBkZXNlYWRvDQpuX2NvbG9yZXMgPC0gMTc2DQoNCiMgR2VuZXJhciBsYSBwYWxldGEgZGUgY29sb3Jlcw0KDQpwYWxldGFfY29sb3JlcyA8LXJhaW5ib3dfaGNsKG5fY29sb3JlcykgIyBFamVtcGxvIGRlIGNvbG9yZXMgYmFzZQ0KYGBgDQoNCmBgYHtyLGVjaG89RkFMU0V9DQoNCmZpZyA8LSBwbG90X2x5KHJlZ2lvbl9jYW50b25fbWFzX2FjY2lkZW50ZXMsIHggPSB+UmVnacOzbi5NaWRlcGxhbiwgeSA9IH5tYXhfdmFsb3IsIG1hcmtlciA9IGxpc3QoY29sb3I9cGFsZXRhX2NvbG9yZXMpICwgdHlwZSA9ICdiYXInLGhvdmVydGVtcGxhdGUgPSB+cGFzdGUoIlJlZ2nDs246ICIsIFJlZ2nDs24uTWlkZXBsYW4sICI8YnI+Q2FudMOzbjogIiwgQ2FudMOzbiwgIjxicj5WYWxvcjogIiwgbWF4X3ZhbG9yLA0KICAgICAgIjxleHRyYT48L2V4dHJhPiIpKQ0KDQpmaWcgPC0gZmlnICU+JSBsYXlvdXQoeWF4aXMgPSBsaXN0KHRpdGxlID0gJycpLHhheGlzPWxpc3QodGl0bGUgPSAnJyksIGJhcm1vZGUgPSAnc3RhY2snKQ0KDQpmaWcNCmBgYA0KDQpgYGB7cn0NCmFuaW9DVEc8LWRhdGEgJT4lDQogIGdyb3VwX2J5KEHDsW8sVGlwby5kZS5jaXJjdWxhY2nDs24sRXN0YWRvLmRlbC50aWVtcG8sQ2xhc2UuZGUuYWNjaWRlbnRlKSAlPiUNCiAgc3VtbWFyaXNlKE51bWVyb0FjY2lkZW50ZXM9bigpLC5ncm91cHM9ImRyb3AiKQ0KDQphbmlvQ1RHPC1hbmlvQ1RHJT4lDQogIGdyb3VwX2J5KEHDsW8sVGlwby5kZS5jaXJjdWxhY2nDs24sRXN0YWRvLmRlbC50aWVtcG8sQ2xhc2UuZGUuYWNjaWRlbnRlKSU+JQ0KICBzdW1tYXJpc2UoQWNjaWRlbnRlcyA9IG1pbihOdW1lcm9BY2NpZGVudGVzKSwuZ3JvdXBzID0gImRyb3AiKSU+JQ0KICBhcnJhbmdlKEFjY2lkZW50ZXMpDQphbmlvQ1RHPC1hbmlvQ1RHJT4lDQogIHJlbmFtZShDaXJjdWxhY2lvbiA9IFRpcG8uZGUuY2lyY3VsYWNpw7NuKSU+JQ0KICByZW5hbWUoQ2xpbWEgPSBFc3RhZG8uZGVsLnRpZW1wbyklPiUNCiAgcmVuYW1lKEdyYXZlZGFkID0gQ2xhc2UuZGUuYWNjaWRlbnRlKQ0KDQphbmlvQ1RHJEHDsW88LXN1YnN0cihhbmlvQ1RHJEHDsW8sIHN0YXJ0ID0gMywgc3RvcCA9IG5jaGFyKGFuaW9DVEckQcOxbykpDQojZWxpbWlubyBlbCAyMCBkZWwgYcOxbyBwYXJhIHF1ZSBzZWEgbWVqb3IgbGEgcmVzcHJlc2VudGFjacOzbiB0ZXh0dWFsDQojbyBzZWEgZW4gdmV6IGRlIDIwMTYgc2FsZSAxNg0KYGBgDQoNCmBgYHtyLGVjaG89RkFMU0V9DQpmYWNlSW50ZXJhY3Rpdm8gPC0gZ2dwbG90KGFuaW9DVEcsIGFlcyh4PUNpcmN1bGFjaW9uLCB5PUFjY2lkZW50ZXMsIGNvbG9yPUNsaW1hLCBncm91cD1HcmF2ZWRhZCkpICsNCiAgICBnZW9tX3BvaW50KCkrDQogICAgbGFicyh4PSJUaXBvIGRlIGNpcmN1bGFjacOzbiIseT0iQ2FudGlkYWQgYWNjaWRlbnRlcyIsY29sb3VyPSIgRXN0YWRvIGRlbCBjbGltYSIpKw0KICBzY2FsZV95X2NvbnRpbnVvdXMobGltaXRzID0gYygwLCAyNjAwKSwgYnJlYWtzID0gYygwLCAyNjAwKSkrDQogIHRoZW1lKGF4aXMudGV4dC54ID0gZWxlbWVudF90ZXh0KGFuZ2xlID0gLTQ1LCBoanVzdCA9IDApLGF4aXMudGV4dC55ID0gZWxlbWVudF90ZXh0KGFuZ2xlPTEyKSkrDQogICAgZmFjZXRfZ3JpZChBw7FvIH4gLiwgc2NhbGUgPSAiZnJlZV94IixzcGFjZSA9ICJmcmVlIikNCiAgICANCg0KZ2dwbG90bHkoZmFjZUludGVyYWN0aXZvKQ0KYGBgDQoNCmBgYHtyLCBlY2hvID0gRkFMU0V9DQojIENhbGN1bGFyIGxhIGNhbnRpZGFkIGRlIGFjY2lkZW50ZXMgcG9yIGHDsW8NCmZyZWN1ZW5jaWFfYcOxbyA8LSB0YWJsZShkYXRhJEHDsW8pDQoNCiMgQ3JlYXIgdW4gZnJhbWUgZGUgZGF0b3MgY29uIGxhIGZyZWNpZW5jYSB5IGVsIGHDsW8NCmRhdG9zX2ZyZWN1ZW5jaWFfYcOxbyA8LSBkYXRhLmZyYW1lKA0KICBBw7FvID0gbmFtZXMoZnJlY3VlbmNpYV9hw7FvKSwNCiAgQWNjaWRlbnRlcyA9IGFzLm51bWVyaWMoZnJlY3VlbmNpYV9hw7FvKQ0KKQ0KDQojIENyZWFyIGVsIGdyYWZpY28gY29uIHVuIHB1bnRvIHBvciBjYWRhIGHDsW8NCnB1bnRvc19hw7FvIDwtIGdncGxvdChkYXRvc19mcmVjdWVuY2lhX2HDsW8sIGFlcyh4ID0gQcOxbywgeSA9IEFjY2lkZW50ZXMsIGNvbG9yID0gQcOxbykpICsNCiAgZ2VvbV9wb2ludChzaXplID0gNSkgKw0KICBzY2FsZV94X2Rpc2NyZXRlKGJyZWFrcyA9IE5VTEwpICsNCiAgbGFicyh5ID0gIiMgZGUgYWNjaWRlbnRlcyIsIA0KICAgICAgIHRpdGxlID0gIkNhbnRpZGFkIGRlIGFjY2lkZW50ZXMgcG9yIGHDsW8iKSArDQogIHRoZW1lKGF4aXMudGl0bGUueCA9IGVsZW1lbnRfYmxhbmsoKSwNCiAgICAgICAgYXhpcy50ZXh0LnggPSBlbGVtZW50X2JsYW5rKCkpDQoNCmdncGxvdGx5KHB1bnRvc19hw7FvKQ0KYGBgDQoNCmBgYHtyLCBlY2hvID0gRkFMU0V9DQpiYXJyYXNfaG9yYSA8LSBnZ3Bsb3QoZGF0YSwgYWVzKHggPSBIb3JhLnJlY29kaWZpY2FkYSwgZmlsbCA9IEhvcmEucmVjb2RpZmljYWRhKSkgKw0KICBnZW9tX2JhcigpICsNCiAgbGFicyh0aXRsZSA9ICJBY2NpZGVudGVzIHBvciBIb3JhIHJlY29kaWZpY2FkYSAocmFuZ28gZGUgNiBob3JhcykiLA0KICAgICAgIHggPSAiSG9yYSBSZWNvZGlmaWNhZGEiLCB5ID0gIiMgZGUgYWNjaWRlbnRlcyIsIGZpbGwgPSAiUmFuZ28gaG9yYXJpbyIpICsNCiAgdGhlbWUoYXhpcy50ZXh0LnggPSBlbGVtZW50X2JsYW5rKCkpDQoNCmdncGxvdGx5KGJhcnJhc19ob3JhKQ0KYGBgDQoNCmBgYHtyLCBlY2hvID0gRkFMU0V9DQpiYXJyYXNfdGlwb19jbGFzZSA8LSBnZ3Bsb3QoZGF0YSwgYWVzKHggPSBUaXBvLmRlLmFjY2lkZW50ZSwgZmlsbCA9IENsYXNlLmRlLmFjY2lkZW50ZSkpICsNCiAgZ2VvbV9iYXIoKSArDQogIGxhYnModGl0bGUgPSAiVGlwb3MgZGUgaGVyaWRvcyBwb3IgdGlwbyBkZSBhY2NpZGVudGUiLA0KICAgICAgIHggPSAiVGlwbyBkZSBhY2NpZGVudGUiLCB5ID0gIiMgZGUgYWNjaWRlbnRlcyIsIGZpbGwgPSAiVGlwbyBkZSBoZXJpZG9zIikgKw0KICB0aGVtZShheGlzLnRleHQueCA9IGVsZW1lbnRfdGV4dChhbmdsZSA9IDMxNSwgaGp1c3QgPSAwKSkNCg0KZ2dwbG90bHkoYmFycmFzX3RpcG9fY2xhc2UpDQpgYGANCg0KYGBge3IsZWNobz1GQUxTRX0NCmRhdG9zX211bHRpZGltZW5zaW9uYWxlczwtZGF0YSU+JQ0KICBmaWx0ZXIoZ3JlcGwoIl5bMS03XVxcLihEb21pbmdvfEx1bmVzfE1hcnRlc3xNacOpcmNvbGVzfEp1ZXZlc3xWaWVybmVzfFPDoWJhZG8pJCIsIETDrWEpKSAlPiUNCiAgZ3JvdXBfYnkoSG9yYS5yZWNvZGlmaWNhZGEsRMOtYSxFc3RhZG8uZGVsLnRpZW1wbyxUaXBvLmRlLmNhbHphZGEsVGlwby5kZS5jaXJjdWxhY2nDs24pJT4lDQogIHN1bW1hcmlzZShhY2NpZGVudGVzPW4oKSwuZ3JvdXBzID0gImRyb3AiKQ0KDQpkYXRvc19tdWx0aWRpbWVuc2lvbmFsZXMkRMOtYSA8LSBnc3ViKCJbMS03XVxcLiIsICIiLCBkYXRvc19tdWx0aWRpbWVuc2lvbmFsZXMkRMOtYSkNCiAgDQpgYGANCg0KDQpgYGB7cn0NCmF4aXMgPSBsaXN0KHNob3dsaW5lPUZBTFNFLA0KICAgICAgICAgICAgemVyb2xpbmU9RkFMU0UsDQogICAgICAgICAgICBncmlkY29sb3I9JyNmZmZmJywNCiAgICAgICAgICAgIHRpY2tsZW49MSkNCg0KbWF0cml6RCA8LSBkYXRvc19tdWx0aWRpbWVuc2lvbmFsZXMgJT4lDQogIHBsb3RfbHkoKSANCm1hdHJpekQgPC0gbWF0cml6RCAlPiUNCiAgYWRkX3RyYWNlKA0KICAgIHR5cGUgPSAnc3Bsb20nLA0KICAgIGRpbWVuc2lvbnMgPSBsaXN0KA0KICAgICAgbGlzdChsYWJlbD0nRMOtYScsdmFsdWVzPX5Ew61hKSwNCiAgICAgIGxpc3QobGFiZWw9J1Ryw6Fuc2l0bycsdmFsdWVzPX5UaXBvLmRlLmNpcmN1bGFjacOzbiksDQogICAgICBsaXN0KGxhYmVsPSdIb3JhJyx2YWx1ZXM9fkhvcmEucmVjb2RpZmljYWRhKSwNCiAgICAgIGxpc3QobGFiZWw9J1bDrWEnLHZhbHVlcz1+VGlwby5kZS5jYWx6YWRhKSwNCiAgICAgIGxpc3QobGFiZWw9J0NsaW1hJyx2YWx1ZXM9fkVzdGFkby5kZWwudGllbXBvKQ0KICAgICkNCiAgKQ0KbWF0cml6RCA8LSBtYXRyaXpEICU+JQ0KICBsYXlvdXQoDQogICAgdGl0bGU9ICdBY2NpZGVudGVzIGRlbCAyMDE2LTIwMjIgZXZhbHVhbmRvIGRpc3RpbnRvcyBmYWN0b3JlcycsDQogICAgaG92ZXJtb2RlPSdjbG9zZXN0JywNCiAgICBkcmFnbW9kZT0gJ3NlbGVjdCcsDQogICAgcGxvdF9iZ2NvbG9yPSdyZ2JhKDI0MCwyNDAsMjQwLCAwLjk1KScsDQogICAgeGF4aXM9bGlzdChkb21haW49TlVMTCwgc2hvd2xpbmU9RiwgemVyb2xpbmU9RiwgZ3JpZGNvbG9yPScjZmZmZicsIHRpY2tsZW49NCksDQogICAgeWF4aXM9bGlzdChkb21haW49TlVMTCwgc2hvd2xpbmU9RiwgemVyb2xpbmU9RiwgZ3JpZGNvbG9yPScjZmZmZicsIHRpY2tsZW49NCksDQogICAgeGF4aXMyPWF4aXMsDQogICAgeGF4aXMzPWF4aXMsDQogICAgeGF4aXM0PWF4aXMsDQogICAgeWF4aXMyPWF4aXMsDQogICAgeWF4aXMzPWF4aXMsDQogICAgeWF4aXM0PWF4aXMNCiAgKQ0KDQptYXRyaXpEIDwtIG1hdHJpekQgJT4lDQogIGxheW91dCgNCiAgeGF4aXMgPSBsaXN0KHRpY2t2YWxzID0gTlVMTCwgdGlja3RleHQgPSBOVUxMKSwNCiAgeGF4aXMyID0gbGlzdCh0aWNrdmFscyA9IE5VTEwsIHRpY2t0ZXh0ID0gTlVMTCksDQogIHhheGlzMyA9IGxpc3QodGlja3ZhbHMgPSBOVUxMLCB0aWNrdGV4dCA9IE5VTEwpLA0KICB4YXhpczQgPSBsaXN0KHRpY2t2YWxzID0gTlVMTCwgdGlja3RleHQgPSBOVUxMKSwNCiAgeGF4aXM1ID0gbGlzdCh0aWNrdmFscyA9IE5VTEwsIHRpY2t0ZXh0ID0gTlVMTCksDQogIHlheGlzID0gbGlzdCh0aWNrdmFscyA9IE5VTEwsIHRpY2t0ZXh0ID0gTlVMTCksDQogIHlheGlzMiA9IGxpc3QodGlja3ZhbHMgPSBOVUxMLCB0aWNrdGV4dCA9IE5VTEwpLA0KICB5YXhpczMgPSBsaXN0KHRpY2t2YWxzID0gTlVMTCwgdGlja3RleHQgPSBOVUxMKSwNCiAgeWF4aXM0ID0gbGlzdCh0aWNrdmFscyA9IE5VTEwsIHRpY2t0ZXh0ID0gTlVMTCksDQogIHlheGlzNSA9IGxpc3QodGlja3ZhbHMgPSBOVUxMLCB0aWNrdGV4dCA9IE5VTEwpDQopDQptYXRyaXpEDQoNCg0KYGBgDQoNCg==
=======
LS0tDQp0aXRsZTogIkFjY2lkZW50ZXMgZGUgdHJhbnNpdG8gZW4gQ1IgZW50cmUgMjAxNi0yMDIyIg0Kb3V0cHV0OiBodG1sX25vdGVib29rDQotLS0NCg0KYGBge3IsIGVjaG8gPSBGQUxTRX0NCmRhdGEgPC0gcmVhZC5jc3YoImFjY2lkZW50ZXNfdHJhbnNpdG9fY29uX3ZpY3RpbWFzXzIwMTZfMjAyMi5jc3YiLCBzZXAgPSAiOyIpDQpgYGANCg0KYGBge3IsIGVjaG8gPSBGQUxTRSwgd2FybmluZyA9IEZBTFNFfQ0KbGlicmFyeShkcGx5cikNCmxpYnJhcnkoZ2dwbG90MikNCmxpYnJhcnkocGxvdGx5KQ0KbGlicmFyeShjb2xvcnNwYWNlKQ0KbGlicmFyeSh0cmVlbWFwaWZ5KQ0KYGBgDQoNCmBgYHtyLCBlY2hvPUZBTFNFLCB3YXJuaW5nID0gRkFMU0V9DQojb2J0ZW5lbW9zIGxvcyBtZXNlcywgZGlhcyB5IGxhIHJ1dGEgZG9uZGUNCiNtYXMgYWNjaWRlbnRlcyBoYXkNCm1lc2VzX2RpYXNfUlVfbWFzX2FjY2lkZW50ZXMgPC0gZGF0YSAlPiUNCiAgZmlsdGVyKGdyZXBsKCJeW0EtTF1cXC4uKlxccyhFbmVyb3xGZWJyZXJvfE1hcnpvfEFicmlsfE1heW98SnVuaW98SnVsaW98QWdvc3RvfFNldGllbWJyZXxPY3R1YnJlfE5vdmllbWJyZXxEaWNpZW1icmUpJCIsIE1lcykpICU+JQ0KICBmaWx0ZXIoZ3JlcGwoIl5bMS03XVxcLihEb21pbmdvfEx1bmVzfE1hcnRlc3xNacOpcmNvbGVzfEp1ZXZlc3xWaWVybmVzfFPDoWJhZG8pJCIsIETDrWEpKSAlPiUNCiAgZ3JvdXBfYnkoTWVzLETDrWEsUnV0YSkgJT4lDQogIHN1bW1hcmlzZShNRHRvdGFsX2FjY2lkZW50ZXMgPSBuKCkpICU+JQ0KICBhcnJhbmdlKGRlc2MoTUR0b3RhbF9hY2NpZGVudGVzKSkNCg0KcmVnaXN0cm9zX21hc19mcmVjdWVudGVzIDwtIG1lc2VzX2RpYXNfUlVfbWFzX2FjY2lkZW50ZXMgJT4lDQogIGdyb3VwX2J5KE1lcykgJT4lDQogIHNsaWNlKDEpDQogIA0KbnVtZXJvX21lcyA8LSBzZXEoMSwgMTIsIGxlbmd0aC5vdXQgPSBucm93KHJlZ2lzdHJvc19tYXNfZnJlY3VlbnRlcykpDQpudW1lcm9fbWVzIDwtIGFzLmludGVnZXIobnVtZXJvX21lcykNCnJlZ2lzdHJvc19tYXNfZnJlY3VlbnRlcyA8LSBjYmluZChyZWdpc3Ryb3NfbWFzX2ZyZWN1ZW50ZXMsIE51bWVyb01lcyA9IG51bWVyb19tZXMpDQoNCiMgQ3JlYXIgdW5hIGNvbHVtbmEgcGFyYSBlbCBuw7ptZXJvIGRlIGTDrWEgc2Vnw7puIGVsIGTDrWEgZGUgbGEgc2VtYW5hIGVuIHJlZ2lzdHJvc19tYXNfZnJlY3VlbnRlcw0KcmVnaXN0cm9zX21hc19mcmVjdWVudGVzJENvbG9yRGlhIDwtaWZlbHNlKHJlZ2lzdHJvc19tYXNfZnJlY3VlbnRlcyREw61hID09ICIxLkRvbWluZ28iLCAiYmx1ZSIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmZWxzZShyZWdpc3Ryb3NfbWFzX2ZyZWN1ZW50ZXMkRMOtYSA9PSAiMi5MdW5lcyIsICJyZWQiLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZmVsc2UocmVnaXN0cm9zX21hc19mcmVjdWVudGVzJETDrWEgPT0gIjMuTWFydGVzIiwgInllbGxvdyIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmZWxzZShyZWdpc3Ryb3NfbWFzX2ZyZWN1ZW50ZXMkRMOtYSA9PSAiNC5NacOpcmNvbGVzIiwgImN5YW4iLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZmVsc2UocmVnaXN0cm9zX21hc19mcmVjdWVudGVzJETDrWEgPT0gIjUuSnVldmVzIiwgImRhcmtncmVlbiIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmZWxzZShyZWdpc3Ryb3NfbWFzX2ZyZWN1ZW50ZXMkRMOtYSA9PSAiNi5WaWVybmVzIiwgImJyb3duIiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWZlbHNlKHJlZ2lzdHJvc19tYXNfZnJlY3VlbnRlcyREw61hID09ICI3LlPDoWJhZG8iLCAiYmxhY2siLCBOQSkpKSkpKSkNCg0KcmVnaXN0cm9zX21hc19mcmVjdWVudGVzJGlkUnV0YSA8LWlmZWxzZShyZWdpc3Ryb3NfbWFzX2ZyZWN1ZW50ZXMkUnV0YSA9PSAiQ2FudG9uYWwiLCAxKQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgDQpyZWdpc3Ryb3NfbWFzX2ZyZWN1ZW50ZXMkTWVzIDwtIGdzdWIoIltBLUxdXFwuIiwgIiIsIHJlZ2lzdHJvc19tYXNfZnJlY3VlbnRlcyRNZXMpDQoNCnJlZ2lzdHJvc19tYXNfZnJlY3VlbnRlcyREw61hIDwtIGdzdWIoIlsxLTddXFwuIiwgIiIsIHJlZ2lzdHJvc19tYXNfZnJlY3VlbnRlcyREw61hKQ0KDQpgYGANCg0KYGBge3IsIGVjaG8gPSBGQUxTRX0NCmdyYWZpY29fY2hlcm5vZmYgPC0gZ2dwbG90KHJlZ2lzdHJvc19tYXNfZnJlY3VlbnRlcywgYWVzKHggPSBOdW1lcm9NZXMsIHkgPSBpZFJ1dGEsbGFiZWwxID0gTWVzLGxhYmVsMiA9IFJ1dGEsbGFiZWwzID0gRMOtYSkpICsNCiAgZ2VvbV9wb2ludChzaXplID0gOSxjb2xvdXIgPSByZWdpc3Ryb3NfbWFzX2ZyZWN1ZW50ZXMkQ29sb3JEaWEpICsNCiAgbGFicyh4ID0gIk1lcyIseSA9ICJSdXRhIikgKw0KICBnZW9tX3RleHQoYWVzKGxhYmVsID0gIvCfkYHvuI8g8J+Rge+4jyIpLHZqdXN0ID0gLTUsIHNpemUgPSAzKSsgIA0KICBnZW9tX3RleHQoYWVzKGxhYmVsID0gIvCfkYQiKSwgdmp1c3QgPSA1LCBzaXplID0gMikgKw0KICB0aGVtZV9idygpDQoNCiMgQ29udmVydGltb3MgZWwgZ3LDoWZpY28gZ2dwbG90MiBlbiB1bm8gaW50ZXJhY3Rpdm8gY29uIHBsb3RseQ0KZ3JhZmljb19pbnRlcmFjdGl2byA8LSBnZ3Bsb3RseShncmFmaWNvX2NoZXJub2ZmLHRvb2x0aXAgPSBjKCJsYWJlbDEiLCAibGFiZWwyIiwgImxhYmVsMyIpKQ0KDQojIE1vc3RyYW1vcyBlbCBncsOhZmljbyBpbnRlcmFjdGl2bw0KZ3JhZmljb19pbnRlcmFjdGl2bw0KDQojIDEyIGNhcmFzIHBvciBsb3MgbWVzZXMsIGNvbG9yIGNhcmEgZGlhcyAuLi4geSB0YW1hbmhvIGNhcmEgcnV0YQ0KYGBgDQoNCmBgYHtyLGVjaG89RkFMU0V9DQpydXJhbFVyYmFub19tYXNfYWNjaWRlbnRlczwtZGF0YSAlPiUNCiAgZ3JvdXBfYnkoUnVyYWwuby51cmJhbm8pJT4lDQogIHN1bW1hcmlzZShSVXRvdGFsX2FjY2lkZW50ZXMgPSBuKCkpICU+JQ0KICBhcnJhbmdlKGRlc2MoUlV0b3RhbF9hY2NpZGVudGVzKSkNCiMgZGVzZGUgMjAxNiBoYXN0YXMgMjAyMg0KYGBgDQoNCmBgYHtyLGVjaG89RkFMU0V9DQpsYWJlbHMgPSBydXJhbFVyYmFub19tYXNfYWNjaWRlbnRlcyRSdXJhbC5vLnVyYmFubw0KdmFsdWVzID0gcnVyYWxVcmJhbm9fbWFzX2FjY2lkZW50ZXMkUlV0b3RhbF9hY2NpZGVudGVzDQoNCmZpZyA8LSBwbG90X2x5KHR5cGU9J3BpZScsIGxhYmVscz1sYWJlbHMsIHZhbHVlcz12YWx1ZXMsIA0KICAgICAgICAgICAgICAgdGV4dGluZm89J2xhYmVsK3BlcmNlbnQnLA0KICAgICAgICAgICAgICAgaW5zaWRldGV4dG9yaWVudGF0aW9uPSdyYWRpYWwnKQ0KZmlnIDwtIGZpZyAlPiUgbGF5b3V0KHRpdGxlID0gJ0FjY2lkZW50ZXMgcG9yIHJ1dGEgZW50cmUgMjAxNi0yMDIyJykNCg0KZmlnDQpgYGANCg0KYGBge3IsZWNobz1GQUxTRX0NCiN5ID1taWRlcGxhbiB4PSBjYW50b24NCiN0ZW5lciBjYW50b24gY29uIG1hcyB5IG1lbm9zIGFjY2lkZW50ZXMNCnJlZ2lvbl9jYW50b25fbWFzX2FjY2lkZW50ZXM8LWRhdGElPiUNCiAgZ3JvdXBfYnkoUmVnacOzbi5NaWRlcGxhbiwgQ2FudMOzbiklPiUNCiAgc3VtbWFyaXNlKFJDdG90YWxfYWNjaWRlbnRlcyA9IG4oKSwuZ3JvdXBzID0gImRyb3AiKQ0KDQpyZWdpb25fY2FudG9uX21hc19hY2NpZGVudGVzPC1yZWdpb25fY2FudG9uX21hc19hY2NpZGVudGVzJT4lDQogIGdyb3VwX2J5KFJlZ2nDs24uTWlkZXBsYW4sIENhbnTDs24pJT4lDQogIHN1bW1hcmlzZShtYXhfdmFsb3IgPSBtYXgoUkN0b3RhbF9hY2NpZGVudGVzKSwuZ3JvdXBzID0gImRyb3AiKSU+JQ0KICBhcnJhbmdlKG1heF92YWxvcikNCg0KIyBOw7ptZXJvIGRlIGNvbG9yZXMgZGVzZWFkbw0Kbl9jb2xvcmVzIDwtIDE3Ng0KDQojIEdlbmVyYXIgbGEgcGFsZXRhIGRlIGNvbG9yZXMNCg0KcGFsZXRhX2NvbG9yZXMgPC1yYWluYm93X2hjbChuX2NvbG9yZXMpICMgRWplbXBsbyBkZSBjb2xvcmVzIGJhc2UNCmBgYA0KDQpgYGB7cixlY2hvPUZBTFNFfQ0KDQpmaWcgPC0gcGxvdF9seShyZWdpb25fY2FudG9uX21hc19hY2NpZGVudGVzLCB4ID0gflJlZ2nDs24uTWlkZXBsYW4sIHkgPSB+bWF4X3ZhbG9yLCBtYXJrZXIgPSBsaXN0KGNvbG9yPXBhbGV0YV9jb2xvcmVzKSAsIHR5cGUgPSAnYmFyJyxob3ZlcnRlbXBsYXRlID0gfnBhc3RlKCJSZWdpw7NuOiAiLCBSZWdpw7NuLk1pZGVwbGFuLCAiPGJyPkNhbnTDs246ICIsIENhbnTDs24sICI8YnI+VmFsb3I6ICIsIG1heF92YWxvciwNCiAgICAgICI8ZXh0cmE+PC9leHRyYT4iKSkNCg0KZmlnIDwtIGZpZyAlPiUgbGF5b3V0KHlheGlzID0gbGlzdCh0aXRsZSA9ICcnKSx4YXhpcz1saXN0KHRpdGxlID0gJycpLCBiYXJtb2RlID0gJ3N0YWNrJykNCg0KZmlnDQpgYGANCg0KYGBge3IsIGVjaG8gPSBGQUxTRX0NCmFuaW9DVEc8LWRhdGEgJT4lDQogIGdyb3VwX2J5KEHDsW8sVGlwby5kZS5jaXJjdWxhY2nDs24sRXN0YWRvLmRlbC50aWVtcG8sQ2xhc2UuZGUuYWNjaWRlbnRlKSAlPiUNCiAgc3VtbWFyaXNlKE51bWVyb0FjY2lkZW50ZXM9bigpLC5ncm91cHM9ImRyb3AiKQ0KDQphbmlvQ1RHPC1hbmlvQ1RHJT4lDQogIGdyb3VwX2J5KEHDsW8sVGlwby5kZS5jaXJjdWxhY2nDs24sRXN0YWRvLmRlbC50aWVtcG8sQ2xhc2UuZGUuYWNjaWRlbnRlKSU+JQ0KICBzdW1tYXJpc2UoQWNjaWRlbnRlcyA9IG1pbihOdW1lcm9BY2NpZGVudGVzKSwuZ3JvdXBzID0gImRyb3AiKSU+JQ0KICBhcnJhbmdlKEFjY2lkZW50ZXMpDQphbmlvQ1RHPC1hbmlvQ1RHJT4lDQogIHJlbmFtZShDaXJjdWxhY2lvbiA9IFRpcG8uZGUuY2lyY3VsYWNpw7NuKSU+JQ0KICByZW5hbWUoQ2xpbWEgPSBFc3RhZG8uZGVsLnRpZW1wbyklPiUNCiAgcmVuYW1lKEdyYXZlZGFkID0gQ2xhc2UuZGUuYWNjaWRlbnRlKQ0KDQphbmlvQ1RHJEHDsW88LXN1YnN0cihhbmlvQ1RHJEHDsW8sIHN0YXJ0ID0gMywgc3RvcCA9IG5jaGFyKGFuaW9DVEckQcOxbykpDQojZWxpbWlubyBlbCAyMCBkZWwgYcOxbyBwYXJhIHF1ZSBzZWEgbWVqb3IgbGEgcmVzcHJlc2VudGFjacOzbiB0ZXh0dWFsDQojbyBzZWEgZW4gdmV6IGRlIDIwMTYgc2FsZSAxNg0KYGBgDQoNCmBgYHtyLGVjaG89RkFMU0V9DQpmYWNlSW50ZXJhY3Rpdm8gPC0gZ2dwbG90KGFuaW9DVEcsIGFlcyh4PUNpcmN1bGFjaW9uLCB5PUFjY2lkZW50ZXMsIGNvbG9yPUNsaW1hLCBncm91cD1HcmF2ZWRhZCkpICsNCiAgICBnZW9tX3BvaW50KCkrDQogICAgbGFicyh4PSJUaXBvIGRlIGNpcmN1bGFjacOzbiIseT0iQ2FudGlkYWQgYWNjaWRlbnRlcyIsY29sb3VyPSIgRXN0YWRvIGRlbCBjbGltYSIpKw0KICBzY2FsZV95X2NvbnRpbnVvdXMobGltaXRzID0gYygwLCAyNjAwKSwgYnJlYWtzID0gYygwLCAyNjAwKSkrDQogIHRoZW1lKGF4aXMudGV4dC54ID0gZWxlbWVudF90ZXh0KGFuZ2xlID0gLTQ1LCBoanVzdCA9IDApLGF4aXMudGV4dC55ID0gZWxlbWVudF90ZXh0KGFuZ2xlPTEyKSkrDQogICAgZmFjZXRfZ3JpZChBw7FvIH4gLiwgc2NhbGUgPSAiZnJlZV94IixzcGFjZSA9ICJmcmVlIikNCiAgICANCg0KZ2dwbG90bHkoZmFjZUludGVyYWN0aXZvKQ0KYGBgDQoNCmBgYHtyLCBlY2hvID0gRkFMU0V9DQojIENhbGN1bGFyIGxhIGNhbnRpZGFkIGRlIGFjY2lkZW50ZXMgcG9yIGHDsW8NCmZyZWN1ZW5jaWFfYcOxbyA8LSB0YWJsZShkYXRhJEHDsW8pDQoNCiMgQ3JlYXIgdW4gZnJhbWUgZGUgZGF0b3MgY29uIGxhIGZyZWNpZW5jYSB5IGVsIGHDsW8NCmRhdG9zX2ZyZWN1ZW5jaWFfYcOxbyA8LSBkYXRhLmZyYW1lKA0KICBBw7FvID0gbmFtZXMoZnJlY3VlbmNpYV9hw7FvKSwNCiAgQWNjaWRlbnRlcyA9IGFzLm51bWVyaWMoZnJlY3VlbmNpYV9hw7FvKQ0KKQ0KDQojIENyZWFyIGVsIGdyYWZpY28gY29uIHVuIHB1bnRvIHBvciBjYWRhIGHDsW8NCnB1bnRvc19hw7FvIDwtIGdncGxvdChkYXRvc19mcmVjdWVuY2lhX2HDsW8sIGFlcyh4ID0gQcOxbywgeSA9IEFjY2lkZW50ZXMsIGNvbG9yID0gQcOxbykpICsNCiAgZ2VvbV9wb2ludChzaXplID0gNSkgKw0KICBzY2FsZV94X2Rpc2NyZXRlKGJyZWFrcyA9IE5VTEwpICsNCiAgbGFicyh5ID0gIiMgZGUgYWNjaWRlbnRlcyIsIA0KICAgICAgIHRpdGxlID0gIkNhbnRpZGFkIGRlIGFjY2lkZW50ZXMgcG9yIGHDsW8iKSArDQogIHRoZW1lKGF4aXMudGl0bGUueCA9IGVsZW1lbnRfYmxhbmsoKSwNCiAgICAgICAgYXhpcy50ZXh0LnggPSBlbGVtZW50X2JsYW5rKCkpDQoNCmdncGxvdGx5KHB1bnRvc19hw7FvKQ0KYGBgDQoNCmBgYHtyLCBlY2hvID0gRkFMU0V9DQpiYXJyYXNfaG9yYSA8LSBnZ3Bsb3QoZGF0YSwgYWVzKHggPSBIb3JhLnJlY29kaWZpY2FkYSwgZmlsbCA9IEhvcmEucmVjb2RpZmljYWRhKSkgKw0KICBnZW9tX2JhcigpICsNCiAgbGFicyh0aXRsZSA9ICJBY2NpZGVudGVzIHBvciBIb3JhIHJlY29kaWZpY2FkYSAocmFuZ28gZGUgNiBob3JhcykiLA0KICAgICAgIHggPSAiSG9yYSBSZWNvZGlmaWNhZGEiLCB5ID0gIiMgZGUgYWNjaWRlbnRlcyIsIGZpbGwgPSAiUmFuZ28gaG9yYXJpbyIpICsNCiAgdGhlbWUoYXhpcy50ZXh0LnggPSBlbGVtZW50X2JsYW5rKCkpDQoNCmdncGxvdGx5KGJhcnJhc19ob3JhKQ0KYGBgDQoNCmBgYHtyLCBlY2hvID0gRkFMU0V9DQpiYXJyYXNfdGlwb19jbGFzZSA8LSBnZ3Bsb3QoZGF0YSwgYWVzKHggPSBUaXBvLmRlLmFjY2lkZW50ZSwgZmlsbCA9IENsYXNlLmRlLmFjY2lkZW50ZSkpICsNCiAgZ2VvbV9iYXIoKSArDQogIGxhYnModGl0bGUgPSAiVGlwb3MgZGUgaGVyaWRvcyBwb3IgdGlwbyBkZSBhY2NpZGVudGUiLA0KICAgICAgIHggPSAiVGlwbyBkZSBhY2NpZGVudGUiLCB5ID0gIiMgZGUgYWNjaWRlbnRlcyIsIGZpbGwgPSAiVGlwbyBkZSBoZXJpZG9zIikgKw0KICB0aGVtZShheGlzLnRleHQueCA9IGVsZW1lbnRfdGV4dChhbmdsZSA9IDMxNSwgaGp1c3QgPSAwKSkNCg0KZ2dwbG90bHkoYmFycmFzX3RpcG9fY2xhc2UpDQpgYGANCg==
>>>>>>> c6d893886411386df8f9bc2cb666cee51bc7a06f